ENVI/IDL笔记(1)单窗算法的地表温度反演
地表温度(land surface temperature)是区域热环境研究的重要参数,在旱情监测、农业气象、森林火灾等方面有重要的位置。由于气象站获取的数据十分有限,大范围地表温度的获取目前仍然依靠遥感卫星的热红外数据。
在中分辨率的遥感数据中,基于Landsat系列卫星的热红外数据的地表温度反演得到了广泛的应用,相应的算法也很多。其中我国著名学者覃志豪提出的单窗算法以反演精度高、所需参数少得到了广泛的应用。
辐射亮度
利用定标系数将TM数据第6波段原始DN值转化为热辐射亮度L
L=Gian*DN+Bias
亮度温度
将得到的亮度L转化为亮度温度T
T=K2/(alog(1+K1/L))
比辐射率
利用NDVI阈值来求解地表比辐射率
(详见代码)
pro cal_LST
;打卡TM数据
fn=dialog_pickfile(title='选择TM数据')
envi_open_file,fn,r_fid=fid
envi_file_query,fid,ns=ns,nl=nl,nb=nb,dims=dims,data_type=data_type,$
interleave=interleave,offset=offset
map_info=envi_get_map_info(fid=fid)
b6=envi_get_data(fid=fid,dims=dims,pos=5)
;设定大气参数
w=2.08
T0=24.0+273.15
;辐射定标与亮温计算
L=0.055158*b6+1.2378
T6=1260.56/(alog(1+607.76/L))
;计算比辐射率
b3=envi_get_data(fid=fid,dims=dims,pos=2)
b4=envi_get_data(fid=fid,dims=dims,pos=3)
NDVI=(float(b4)-b3)/(float(b4)+b3)
b2=envi_get_data(fid=fid,dims=dims,pos=1)
b5=envi_get_data(fid=fid,dims=dims,pos=4)
MNDWI=(float(b2)-b5)/(float(b2)+b5)
emiss=cal_EMISS(NDVI,MNDWI)
;单窗算法
Ts_mw=cal_LST_mw(T6,T0,w,emiss)
Ts_mw=Ts_mw-273.15
o_fn=dialog_pickfile(title='单窗结果保存为')
envi_write_envi_file,TS_mw,out_name=o_fn,/no_copy,ns=ns,nl=nl,nb=1,$
data_type=4,interleave=interleave,offset=offset,map_info=map_info
end
function cal_EMISS,NDVI,MNDWI
emiss=1.0094+0.047*alog(NDVI)
w=where(NDVI lt 0.157,count)
if count gt 0 then emiss[w]=0.923
w=where(NDVI gt 0.727,count)
if count gt 0 then emiss[w]=0.994
w=where(MNDWI gt 0,count)
if count gt 0 then emiss[w]=0.995
return,emiss
end
function cal_LST_mw,T6,T0,w,emiss
tal=0.982077+0.09611*w
C=tal*emiss
D=(1-tal)*(1+tal*(1-emiss))
Ta=16.0110+0.92621*T0
Ts=((0.458608*(1-C-D)+C+D)*T6-67.35535*(1-C-D)-D*Ta)/C
return,TS
end
本文选用2011/8/16TM数据采用单窗算法反演地表温度,然后利用实测地温进行验证。
利用单窗算法反演得到地表温度图,图中红色代表高温区。
为了验证反演结果是否正确,本文采用实测数据进行验证,反演温度与实测温度呈一元线性相关,结果相关系数达到了0.8931,对于地表温度的实验研究,已足够达到要求。
徐永明,遥感二次开发语言IDL[M].科学出版社.
曾强,新疆地区煤火燃烧系统热动力研究[D].中国矿业大学.
完